﻿using Gp.Scripts.Core;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

namespace Gp.Scripts.GUI {
    public abstract class BaseSkillButton : MonoBehaviour{
        public Image icon;
        public Button button;
        public AudioClip clip;
        
        // public TMP_Text nameText;
        // public TMP_Text descriptionText;

        public virtual void Init(SkillEntity item, SkillToolTipsController controller) { }
    } 
    
    
    // public class SkillButton : BaseSkillButton, IPointerEnterHandler, IPointerExitHandler {
    //     public GameObject outLine;
    //
    //     private Animator _animator = null;
    //     
    //     public SkillEntity SkillEntity;
    //
    //
    //
    //     private static readonly int Speed = Animator.StringToHash("Speed");
    //     private static readonly int Play = Animator.StringToHash("HighLight");
    //     // public Image close;
    //
    //     private void Start() {
    //         _animator = this.GetComponent<Animator>();
    //     }
    //
    //
    //     public override void Init(SkillEntity item) {
    //         SkillEntity = item;
    //             
    //             
    //         button.onClick.AddListener(
    //             () => {
    //                 if (! SkillEntity.CanPerform()) {
    //                     return;
    //                 }
    //                     
    //                 CellGridSystem.Instance.ContinueTurn(item);
    //             }
    //         );
    //         this.gameObject.SetActive(true);
    //     }
    //     
    //     
    //
    //
    //     private void Update() {
    //         if (SkillEntity == null) {
    //             return;
    //         }
    //         
    //         // SkillEntity.OnButtonRender(this);
    //         button.interactable = SkillEntity.CanPerform();
    //     }
    //
    //     public void OnPointerEnter(PointerEventData eventData) {
    //         _animator.SetFloat(Speed, 1f);
    //         // Debug.Log("enter");
    //
    //         var info = _animator.GetCurrentAnimatorStateInfo(0);
    //         if (info.normalizedTime < 0)
    //         {
    //             _animator.Play(Play, 0, 0);
    //         }
    //     }
    //
    //     public void OnPointerExit(PointerEventData eventData) {
    //         _animator.SetFloat(Speed, -1f);
    //         // Debug.Log("exit");
    //         if (_animator.GetCurrentAnimatorStateInfo(0).normalizedTime > 1)
    //         {
    //             _animator.Play(Play, 0, 1);
    //         }
    //     }
    // }
}